/**
 * 
 */
package com.cqan.mail.entity.config;

/**
 * @Description email服务配置
 * 收邮件服务暂未实现，popHost及popPort字段保留使用
 * @author slaton
 * @date 2012-5-16上午10:10:53
 *
 */
public class MailConfig {

	/**
	 * smtp 地址
	 */
	private String smtpHost;
	
	/**
	 *  pop 服务器地址
	 */
	private String popHost;
	
	/**
	 * pop服务端口
	 */
	private Integer popPort;
	
	/**
	 * smtp 端口     默认采用 STARTTLS
	 * STARTTLS 时  smtpPort= 25
	 * ssl 时 smtpPort= 465
	 */
	private Integer smtpPort;
	
	/**
	 * 是否采用SSL方式发送邮件
	 */
	private boolean ssl;
	
	/**
	 * 发送邮件帐号 email格式
	 */
	private String userName;
	
	/**
	 * 发送邮件帐号 名称可不写
	 */
	private String name;
	
	/**
	 * 发送邮件密码
	 */
	private String password;
	
	/**
	 * 邮件编码 默认采用utf-8
	 */
	private String charset;
	
	
	public String getCharset() {
		
		return charset==null?"UTF-8":charset;
	}

	public void setCharset(String charset) {
		this.charset = charset;
	}

	/**
	 * 发送邮件帐号
	 * @return
	 */
	public String getUserName() {
		return userName;
	}

	/**
	 * 设置发送邮件帐号
	 * @param userName 邮件帐号
	 */
	public void setUserName(String userName) {
		this.userName = userName;
	}

	/**
	 * 获取帐号名称  默认取@前面部分
	 * @return
	 */
	public String getName() {
		if (name==null&&userName!=null) {
			return userName.substring(0,userName.indexOf("@"));
		}
		return name;
	}

	/**
	 * @param name 发送邮件帐号 默认取@前面部分
	 */
	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getSmtpHost() {
		return smtpHost;
	}
	
	/**
	 * 设置smtp 服务器地址
	 * @param smtpHost
	 */
	public void setSmtpHost(String smtpHost) {
		this.smtpHost = smtpHost;
	}

	public Integer getSmtpPort() {
		if (smtpPort==null) {
			if (ssl) {
				return 465;
			}else {
				return 25;
			}
		}
		return smtpPort;
	}

	/**
	 *  设置smtp 服务器端口。默认采用 STARTTLS（端口：25）方式发送
	 * ssl 时 smtpPort= 465
	 * @param smtpPort
	 */
	public void setSmtpPort(Integer smtpPort) {
		this.smtpPort = smtpPort;
	}

	public boolean getSsl() {
		return ssl;
	}

	/**
	 * 是否采用SSL加密发送邮件
	 * @param ssl
	 */
	public void setSsl(boolean ssl) {
		this.ssl = ssl;
	}

	public String getPopHost() {
		return popHost;
	}

	public void setPopHost(String popHost) {
		this.popHost = popHost;
	}

	public Integer getPopPort() {
		return popPort;
	}

	public void setPopPort(Integer popPort) {
		this.popPort = popPort;
	}
	
	
}
